package cn.t.model.device;

import cn.t.core.mode.BaseDO;
import lombok.Data;

import java.util.Date;
import java.util.List;

/**
 * 设备表(Device)领域对象
 *
 * @author t
 * @since 2024-05-24 10:19:11
 */
@Data
public class DeviceDO extends BaseDO {


    /**
     * 设备名称
     */
    private String deviceName;

    /**
     * 设备唯一标识
     */
    private String imei;

    /**
     * 设备地址
     */
    private String deviceAddr;

    /**
     * 单位id
     */
    private Long firmId;

    /**
     * 货道数量
     */
    private Integer cargowayQty;

    /**
     * 设备类型：1 重力开门柜 2 重力格口柜 3 无重力格口柜 4重力货架 5 弹簧柜 6礼品格子柜 7旋转柜
     */
    private Integer deviceType;

    /**
     * 地址经度
     */
    private String longitude;

    /**
     * 地址纬度
     */
    private String latitude;

    /**
     * 状态1为正常0为禁用
     */
    private Integer status;
    /**
     * 设备类型
     */
    private List<Integer> deviceTypeList;
    /**
     * 连接时间
     */
    private Date gmtConnect;

    /**
     * 最后补货时间
     */
    private Date gmtLastReplenish;

    /**
     * 省ID
     */
    private String provinceId;

    /**
     * 市ID
     */
    private String cityId;

    /**
     * 区ID
     */
    private String countyId;

    /**
     * 行
     */
    private Integer lineNum;

    /**
     * 列
     */
    private Integer columnNum;

    /**
     * 信号强度: -2 无硬件，  -1  未开始检测，  0到4表示信号强度从无到满
     */
    private Integer csq;

    /**
     * 数据使用情况
     */
    private String dataUsage;

    /**
     * 控制板编号
     */
    private String ctrlBoardNo;

    /**
     * 读卡器id 1:HID读卡器_1 2:ID读卡器 3：ID/IC一体读卡器 4：HID读卡器_2  5:大陆集团专业读卡器
     */
    private Integer cardReaderId;

    /**
     * 当前安装的APP版本号
     */
    private String currentVersion;

    /**
     * 0不返回更新包url，1返回更新包url（如果有更新）
     */
    private String upgrade;

    /**
     * SIM SN 手机卡sn码
     */
    private String simSn;


    /**
     * 变更时间起(查询用)
     */
    private Date gmtModifiedStart;
    /**
     * 变更时间止(查询用)
     */
    private Date gmtModifiedEnd;
    /**
     * 创建时间起(查询用)
     */
    private Date gmtCreatedStart;
    /**
     * 创建时间止(查询用)
     */
    private Date gmtCreatedEnd;

    /**
     * 设备标识
     */
    private String deviceMark;

    /**
     * 缺货率
     */
    private String stockRate;
    /**
     * 设备类型名称 - 列表显示
     */
    private String deviceTypeName;
    /**
     * 公司名称
     */
    private String firmName;
    /**
     * 在线状态
     */
    private Integer onlineStatus;
    /**
     * 设备id, 批量查询用
     */
    private List<Long> deviceIds;
    /**
     * 设备唯一标识, 批量查询用
     */
    private List<String> imeiList;
    /**
     * 用来做校验
     */
    private String pin;
    /**
     * 是否主柜 1 是， 0 否
     */
    private Integer isMaster;
    /**
     * 是否超领锁卡 1 是， 0 否
     */
    private Integer isLock;
    /**
     * 角色设备id
     */
    private Long roleDeviceId;

    /**
     * 旋转柜货道信息
     */
    private List<RotatingCabinetInfo> rotatingCabinets;

    @Data
    public static class RotatingCabinetInfo {

        /**
         * 层数(第几层)
         */
        private Integer storeyNum;

        /**
         * 货道数量
         */
        private Integer cargowayNum;

    }
}

